package string;
/**
 * java.lang.StringBuilder
 * 由于字符串的特性决定着它不适合做修改操作。为了解决这个问题，
 * java提供了便于修改字符串的API:StringBuilder.
 * StringBuilder提供了修改字符串的一系列常用操作:增删改插等。
 * StringBuilder内部维护一个可变的char数组，修改速度更好，并且
 * 内存开销更小。
 * @author 范传奇
 *
 */
public class StringBuilderDemo {
	public static void main(String[] args) {
		String str = "好好学习java";
		//默认表示一个空字符串
//		StringBuilder builder = new StringBuilder();
		//表示给定的字符串
//		StringBuilder builder = new StringBuilder(str);
		/*
		 * StringBuilder不是线程安全的
		 * StringBuffer是线程安全的
		 */
		StringBuffer builder = new StringBuffer(str);
		/*
		 * 好好学习java
		 * 好好学习java,为了找个好工作!
		 * append(String str):将给定的内容追加到当前字符串末尾
		 */
		builder.append(",为了找个好工作!");
		/*
		 * String toString()
		 * 该方法可以获取StringBuilder内部表示的修改后的字符串
		 */
		str = builder.toString();
		System.out.println(str);
		
		/*
		 * 好好学习java,为了找个好工作!
		 * 好好学习java,就是为了改变世界!
		 * replace(int start,int end,String str):
		 * 替换当前字符串中指定范围内的字符串为给定字符串(范围含头不含尾)
		 */
		builder.replace(9, 16, "就是为了改变世界");
		str = builder.toString();
		System.out.println(str);
		
		/*
		 * 好好学习java,就是为了改变世界!
		 * ,就是为了改变世界!
		 * delete(int start,int end)
		 * 删除当前字符串中指定范围内的内容
		 */
		builder.delete(0,8);
		str = builder.toString();
		System.out.println(str);
		
		/*
		 * ,就是为了改变世界!
		 * 活着,就是为了改变世界!
		 * insert(int index,String str)
		 * 将给定的字符串插入到指定位置
		 */
		builder.insert(0, "活着");
		str = builder.toString();
		System.out.println(str);
	}
}














